'''

常用的文件打开模式

·文件的类型
    ·按文件中数据的组织形式，文件分为以下两大类
        ·文本文件:  存储的是普通"字符"文本，默认为unicode字符集，可以使用记本事程序打开
        ·二进制文件: 把数据内容用"字节"进行存储，无法用记事本打开，必须使用专用的软件打开，举例: mp3音频文件.jpg图片.doc文档等

'''
#   打开模式                           描述
#     r          以只读模式打开文件，文件的指针将会放在文件的开头
#     w          以只写模式打开文件，如果文件不存在则创建，如果文件存在，则覆盖原有内容，文件指针(就是光标所处位置) 在文件的开头
#     a          以追加模式打开文件，如果文件不存在则创建，文件指针在文件开头，如果文件存在，则在文件末尾追加内容，文件指针在原文件末尾
#     b          以二进制方式打开文件，不能单独使用，需要与共它模式一起使用，rb，或者wb
#     +          以读写方式打开文件，不能单独使用，需要与其它模式一起使用，a+
#     r+         可读、可写，文件不存在也会报错，写操作时会覆盖
#     w+         可读，可写，文件不存在先创建，会覆盖
#     a+         可读、可写，文件不存在先创建，不会覆盖，追加在末尾

'''文件对象的常用方法'''

#    方法名                                          说明
# read([size])                从文件中读取size个字节或字符的内容返回。若省略[size]，则读取到文件末尾，即一次读取文件所有内容
# readline()                  从文本文件中读取一行内容
# readlines()                 把文本文件中每一行都作为独立的字符串对象，并将这些对象放入列表返回
# write(str)                  将字符串str内容写入文件
# writelines(s_list)          将字符串列表s_list写入文本文件，不添加换行符
#
#                             offset：开始的偏移量，也就是代表需要移动偏移的字节数,offset:  为正,往结束方向移动    为负,往开始方向移动
#                             whence：给offset参数一个定义，表示要从哪个位置开始偏移；
#                             0代表从文件开头开始算起，1代表从当前位置开始算起，2代表从文件末尾算起。
#  把文件指针移动到新的位置        whence不同的值代表不同含义:
# seek(offset,[whence])       0:从文件头开始计算（默认值)
#                             1:从当前位置开始计算
#                             2:从文件尾开始计算
#
# tell()                      返回文件指针的当前位置
# flush()                     把缓冲区的内容写入文件,但不关闭文件
# close()                     把缓冲区的内容写入文件，同时关团文件，释放文件对象相关资源


